﻿using System;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.BusinessData.MetadataModel.Collections;

namespace BdcRestConnector.Tests
{
    public class MyParameter : IParameter
    {
        private readonly DirectionType _direction;
        private readonly ITypeDescriptor _typeDescriptor;
        private readonly string _name;
        private readonly INamedPropertyDictionary _properties;

        public MyParameter(DirectionType direction, string name)
        {
            _direction = direction;
            _name = name;
        }

        public MyParameter(DirectionType direction, string name, INamedPropertyDictionary properties)
            : this(direction, name)
        {
            _properties = properties;
        }

        public object CreateDefaultInstance(IMethodInstance forMethodInstance)
        {
            throw new NotImplementedException();
        }

        public DirectionType Direction
        {
            get { return _direction; }
        }

        public IMethod GetMethod()
        {
            throw new NotImplementedException();
        }

        public ITypeDescriptor GetRootTypeDescriptor()
        {
            return _typeDescriptor;
        }

        public byte OrdinalNumber
        {
            get { throw new NotImplementedException(); }
        }

        public Microsoft.BusinessData.Infrastructure.ITypeReflector TypeReflector
        {
            get { throw new NotImplementedException(); }
        }

        public bool ContainsLocalizedDisplayName()
        {
            throw new NotImplementedException();
        }

        public string GetDefaultDisplayName()
        {
            throw new NotImplementedException();
        }

        public string GetLocalizedDisplayName()
        {
            throw new NotImplementedException();
        }

        public Microsoft.BusinessData.MetadataModel.Collections.ILocalizedNameDictionary GetLocalizedNames()
        {
            throw new NotImplementedException();
        }

        public INamedPropertyDictionary GetProperties()
        {
            return _properties;
        }

        public long Id
        {
            get { throw new NotImplementedException(); }
        }

        public bool IsCached
        {
            get { throw new NotImplementedException(); }
        }

        public string Name
        {
            get { return _name; }
        }
    }
}
